ভেক্টর (vector), লিস্ট (list), ডেক (deque), এবং সেট (set) হলো C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরির (STL) কিছু গুরুত্বপূর্ণ কনটেইনার, যা বিভিন্ন ধরনের ডেটা স্ট্রাকচার সরবরাহ করে। প্রতিটি কনটেইনারের নিজস্ব বৈশিষ্ট্য ও ব্যবহারের উদ্দেশ্য রয়েছে। নিচে প্রতিটি কনটেইনারের ব্যাখ্যা ও উদাহরণ প্রদান করা হলো।
ভেক্টর হলো C++ এর ডাইনামিক অ্যারে। এটি আকারে বাড়তে বা কমতে পারে, এবং ইনডেক্সের মাধ্যমে দ্রুত অ্যাক্সেস করা যায়। ভেক্টর sequence container
হিসেবে কাজ করে, যা ডেটা সংরক্ষণ করতে ধারাবাহিক মেমোরি লোকেশন ব্যবহার করে।
push_back
এবং pop_back
ফাংশনের মাধ্যমে শেষে উপাদান যোগ ও মুছা যায়।#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> numbers = {10, 20, 30};
// মান যোগ করা
numbers.push_back(40);
numbers.push_back(50);
// মান প্রিন্ট করা
for (int num : numbers) {
cout << num << " ";
}
return 0;
}
আউটপুট:
10 20 30 40 50
লিস্ট হলো ডাবল-লিঙ্কড লিস্ট, যা STL এর আরেকটি কনটেইনার। লিস্টে উপাদানগুলো ক্রম অনুযায়ী সংরক্ষণ করা হয়। লিস্টে সামনে বা পেছনে উপাদান যোগ ও মুছা সহজ, তবে ইনডেক্সের মাধ্যমে সরাসরি অ্যাক্সেস করা সম্ভব নয়।
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> numbers = {10, 20, 30};
// সামনে ও পেছনে মান যোগ করা
numbers.push_front(5);
numbers.push_back(40);
// মান প্রিন্ট করা
for (int num : numbers) {
cout << num << " ";
}
return 0;
}
আউটপুট:
5 10 20 30 40
ডেক হলো ডাবল-এন্ডেড কিউ (Double-Ended Queue)। এটি এমন একটি কনটেইনার, যেখানে সামনে ও পেছনে উভয় দিক থেকে উপাদান যোগ ও মুছা যায়। ডেক sequence container
হিসেবে কাজ করে, এবং এটি ভেক্টরের মতোই দ্রুত অ্যাক্সেসযোগ্য।
#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<int> numbers = {10, 20, 30};
// সামনে ও পেছনে মান যোগ করা
numbers.push_front(5);
numbers.push_back(40);
// মান প্রিন্ট করা
for (int num : numbers) {
cout << num << " ";
}
return 0;
}
আউটপুট:
5 10 20 30 40
সেট হলো অ্যাসোসিয়েটিভ কনটেইনার, যেখানে উপাদানগুলো স্বয়ংক্রিয়ভাবে সাজানো থাকে এবং প্রতিটি উপাদান ইউনিক হয়, অর্থাৎ ডুপ্লিকেট মেম্বার থাকে না। set
সাধারণত ডেটা অনুসন্ধান ও অনন্য মান সংরক্ষণের জন্য ব্যবহৃত হয়।
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> numbers = {30, 10, 20, 20, 40};
// মান প্রিন্ট করা (সাজানো এবং ইউনিক মান)
for (int num : numbers) {
cout << num << " ";
}
return 0;
}
আউটপুট:
10 20 30 40
কনটেইনার | বর্ণনা | অ্যাক্সেস টাইপ | বিশেষ বৈশিষ্ট্য |
---|---|---|---|
vector | ডাইনামিক অ্যারে | ইনডেক্স | দ্রুত ইনডেক্স অ্যাক্সেস |
list | ডাবল-লিঙ্কড লিস্ট | ইনডেক্সবিহীন | দ্রুত সামনে-পেছনে যোগ-মুছা |
deque | ডাবল-এন্ডেড কিউ | ইনডেক্স | সামনে ও পেছনে যোগ-মুছা |
set | স্বয়ংক্রিয়ভাবে সাজানো, ইউনিক মান | ইনডেক্সবিহীন | ডুপ্লিকেট মান রাখে না |
vector
ব্যবহার করুন।list
ব্যবহার করা সেরা।deque
ব্যবহার করুন।set
ব্যবহার করুন।STL এর এই কনটেইনারগুলো বিভিন্ন পরিস্থিতিতে ডেটা সংরক্ষণ ও ব্যবস্থাপনা করতে কার্যকরভাবে সাহায্য করে।
common.read_more